/**
 * 
 */
package vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import vwg.na.vwm.rh.motorsdk.commons.entidades.Persona;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.PadPlaneacionPersonalProceso;

/**
 * @author Joel Ochoa [joel.ochoa@vw.com.mx]
 *
 */
@Entity
@Table (name = "pad_pp_planeacionPersonalMovimiento")
public class PadPlaneacionPersonalMovimiento implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 2023508815338636762L;
	
	private int planeacionPersonalMovimiento;
	private PadPlaneacionPersonalProceso planeacionPersonal;
	private Persona persona;
	private PadPPTipoMovimiento tipoMovimiento;
	private PadPPEstadoMovimiento estadoMovimiento;
	private PadPPFuenteMovimiento fuenteMovimiento;
	private String posicion;
	private BigDecimal sueldo;
	private int mesMovimiento;
	private double incremento;
	
	
	/**
	 * @return the planeacionPersonaMovimiento
	 */
	@Id
	@GeneratedValue
	@Column
	public int getPlaneacionPersonalMovimiento() {
		return planeacionPersonalMovimiento;
	}
	/**
	 * @param planeacionPersonaMovimiento the planeacionPersonaMovimiento to set
	 */
	public void setPlaneacionPersonalMovimiento(int planeacionPersonalMovimiento) {
		this.planeacionPersonalMovimiento = planeacionPersonalMovimiento;
	}
	
	/**
	 * @return the planeacionPersonal
	 */
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumns(
			{
		        @JoinColumn(updatable=false,insertable=false, name="folio", referencedColumnName="folio"),
		        @JoinColumn(updatable=false,insertable=false, name="personaAplica", referencedColumnName="personaAplica"),
		    })
	public PadPlaneacionPersonalProceso getPlaneacionPersonal() {
		return planeacionPersonal;
	}
	/**
	 * @param planeacionPersonal the planeacionPersonal to set
	 */
	public void setPlaneacionPersonal(
			PadPlaneacionPersonalProceso planeacionPersonal) {
		this.planeacionPersonal = planeacionPersonal;
	}
	
	/**
	 * @return the persona
	 */
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="persona")
	public Persona getPersona() {
		return persona;
	}
	/**
	 * @param persona the persona to set
	 */
	public void setPersona(Persona persona) {
		this.persona = persona;
	}
	
	
	/**
	 * @return the tipoMovimiento
	 */
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="tipoMovimiento")
	public PadPPTipoMovimiento getTipoMovimiento() {
		return tipoMovimiento;
	}
	/**
	 * @param tipoMovimiento the tipoMovimiento to set
	 */
	public void setTipoMovimiento(PadPPTipoMovimiento tipoMovimiento) {
		this.tipoMovimiento = tipoMovimiento;
	}
	
	/**
	 * @return the estadoMovimiento
	 */
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="estadoMovimiento")
	public PadPPEstadoMovimiento getEstadoMovimiento() {
		return estadoMovimiento;
	}
	/**
	 * @param estadoMovimiento the estadoMovimiento to set
	 */
	public void setEstadoMovimiento(PadPPEstadoMovimiento estadoMovimiento) {
		this.estadoMovimiento = estadoMovimiento;
	}
	
	/**
	 * @return the fuenteMovimiento
	 */
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="fuenteMovimiento")
	public PadPPFuenteMovimiento getFuenteMovimiento() {
		return fuenteMovimiento;
	}
	/**
	 * @param fuenteMovimiento the fuenteMovimiento to set
	 */
	public void setFuenteMovimiento(PadPPFuenteMovimiento fuenteMovimiento) {
		this.fuenteMovimiento = fuenteMovimiento;
	}
	
	/**
	 * @return the posicion
	 */
	@Column
	public String getPosicion() {
		return posicion;
	}
	/**
	 * @param posicion the posicion to set
	 */
	public void setPosicion(String posicion) {
		this.posicion = posicion;
	}
	
	/**
	 * @return the sueldo
	 */
	@Column
	public BigDecimal getSueldo() {
		return sueldo;
	}
	/**
	 * @param sueldo the sueldo to set
	 */
	public void setSueldo(BigDecimal sueldo) {
		this.sueldo = sueldo;
	}
	
	/**
	 * @return the mesMovimiento
	 */
	@Column
	public int getMesMovimiento() {
		return mesMovimiento;
	}
	/**
	 * @param mesMovimiento the mesMovimiento to set
	 */
	public void setMesMovimiento(int mesMovimiento) {
		this.mesMovimiento = mesMovimiento;
	}
	
	/**
	 * @return the incremento
	 */
	@Column
	public double getIncremento() {
		return incremento;
	}
	/**
	 * @param incremento the incremento to set
	 */
	public void setIncremento(double incremento) {
		this.incremento = incremento;
	}
	
}
